1. Technical Field
The present invention relates to communication networks generally. More specifically, the present invention relates to a method and system for stateful switch-over in a high-availability point to point system.
2. Description of Related Art
Point to point protocols such as the Point-to-Point Protocol (PPP) and the Serial Line Interface Protocol (SLIP) provide a mechanism by which data (e.g., datagrams, packets, etc.) may be transmitted between peer data processing systems coupled together by one or more point to point serial links. Such serial links may be wired or wireless and may be implemented using any of a variety of optical and/or electrical physical transmission media (e.g., T-1/DS1, T-3/DS3, SONET Optical Carrier, etc.). PPP includes three main components, a format and method for encapsulating datagrams, a link control protocol (LCP) for establishing, configuring, and testing data-link connections, and a family of network control protocols (NCPs) for establishing and configuring different network-layer protocols (e.g., IP, IPv6, IPX, AppleTalk, Banyan Vines, NetBIOS, etc.).
In order to establish communications over a PPP link, each peer of the link first transmits LCP packets to configure and test the data link. After the link has been established, a peer may optionally be authenticated utilizing an authentication protocol specified when the link was established. Thereafter, NCP packets are transmitted to configure one or more network-layer protocols. Once the selected network-layer protocols have been configured, datagrams from each network-layer protocol can be sent over the link. The link remains configured for communications until explicit LCP or NCP packets close the link or portion thereof down, or some external event occurs (e.g., an inactivity timer expires, the network administrator intervenes, etc.).
FIG. 1 illustrates a high-level Point-to-Point Protocol state diagram according to the prior art. The illustrated prior art state diagram includes a dead link state, a link establishment state, an authentication state, a network-layer protocol state, and a link-termination state. In the dead link state, the physical layer is “down”, i.e., not ready to transmit data. If the physical layer becomes ready to transmit data, indicated by the occurrence of an external event such as carrier detection or network administrator configuration, an “Up” event is generated to signal LCP that the link is entering the link establishment phase.
In the link establishment phase, LCP is used to establish a connection between peers through an exchange of LCP configuration packets. A configuration request (Configure-Request) packet may first be transmitted from one peer to another to indicate the desire to open a connection with a specified set of configuration options (e.g., maximum-receive-unit, authentication-protocol, quality protocol, magic number, protocol-field-compression, address-and-control-field-compression, etc.). Configuration options allow negotiation of modifications to the default characteristics of a point to point link. If a configuration option is not included in a Configure-Request packet, the default value for that configuration option is assumed. Similarly, unless otherwise specified, all configuration options apply in a half-duplex fashion; typically, in the receive direction of the link from the point of view of the Configure-Request packet sender.
A peer receiving a Configure-Request packet may acknowledge the reception of a Configure-Request packet having an acceptable set of configuration options utilizing a configuration acknowledgment (Configure-Ack) packet. Alternatively, if the configuration options specified in a Configure-Request packet are not acceptable or are unrecognizable or not acceptable for negotiation, configuration negative acknowledgment (Configure-Nak) or configuration rejection (Configure-Reject) reply packets, respectively, may be utilized. The link establishment phase is complete, and the LCP Opened state entered, once a Configure-Ack packet has been both sent and received. Should the configuration process fail for any reason, the link transitions back to the dead link phase.
Following link establishment, a peer may optionally be required to authenticate itself utilizing an authentication protocol such as the Password Authentication Protocol (PAP), Challenge Handshake Authentication Protocol, etc. specified during link establishment. The exchange of authentication packets occurs during the authentication phase, which precedes any network-layer protocol packets being exchanged during the network phase. Although, by default, authentication is not mandatory, authentication should take place as soon as possible after link establishment. A link quality assessment to determine when, and how often the link is dropping data may be performed during the authentication phase however. If authentication fails for any reason, the LCP transitions to a CLOSED/DOWN state and PPP moves back into the dead link phase.
Once a link has been established and authenticated (if necessary), each network-layer protocol (e.g., IP, IPX, AppleTalk, etc.) is separately configured by an appropriate NCP during a network-layer protocol phase as shown. Each NCP is used to configure its corresponding network-layer protocol through an exchange of configure packets (e.g., Configure-Request, Configure-Ack, Configure-Nak, Configure-Reject, etc.) just as described with respect to the link establishment by the LCP. Each NCP may be Opened and/or Closed at any time while the LCP-configured link is open. After an NCP has reached the Opened state, PPP will carry corresponding network-layer protocol packets.
Following the network-layer protocol phase, or at any time, a link may be terminated within the link termination phase through an exchange of LCP Terminate packets. Link termination may occur due to the loss of carrier, an authentication failure, a link quality failure, the expiration of an idle-period timer, the administrative closing of the link (e.g., to update network element/peer data processing system operating software), etc. The fact that one NCP has closed is not sufficient reason alone however to cause the termination of the link, even if that NCP was the only NCP currently in the Opened state. When the link is closing, PPP informs the network-layer protocols so that they may take appropriate action. Following the link termination phase, the link is returned to the dead link phase until an event occurs indicating that the physical layer is ready to transmit data.
PPP implementations in conventional peer data processing systems may additionally include a multilink protocol (MLP) which permits a system to indicate to its peer that it is capable of combining multiple physical links into a logical “bundle”. Multilink is negotiated during LCP option negotiation by sending a multilink option as part of the initial LCP option negotiation. Once multilink has been successfully negotiated, the sending system is free to send data encapsulated and/or fragmented with the multilink header thereby creating a virtual link made up of multiple independent physical links and having greater bandwidth than any of the constituent members.
FIG. 2 illustrates a high-level switch-over process flow diagram according to the prior art. To reduce the downtime of point to point serial links, conventional peer data processing systems (e.g., network elements or nodes, hosts, routers, gateways, etc.) include an active or “primary” processor to configure and transmit data utilizing links and one or more standby or “secondary” processors to supplant the active processor should it fail. According to the illustrated process, a PPP link is configured utilizing an active processor (process block 200) and the resulting link's state data (e.g., configuration options) is stored locally to the active processor (process block 202) for example, by storing it within memory local to and directly accessible only by, the active processor. PPP link configuration according to the illustrated process may include LCP link configuration, NCP protocol configuration, and/or the configuration of MLP aggregate links or bundles. Thereafter, the active processor transmits data utilizing the configured PPP link (process block 204) and the standby processor is utilized to detect any switch-over conditions (e.g., hardware and/or software errors which cause an active processor to crash or reset) (process block 206).
If a determination is made that no switch-over condition has occurred, a determination is then made whether or not the link has been terminated (process block 208) for a condition not requiring switch-over (e.g., the expiration of an idle-period timer, the administrative closing of the link, etc.). If the link has not been terminated, the active processor continues to transmit data (process block 204) until a determination is made that a switch-over condition has occurred or that the link has been terminated as described. Otherwise the illustrated process is terminated along with the link.
If a determination is made by the standby processor that a switch-over condition has in fact occurred, the standby processor becomes the active processor, reconfiguring the PPP link (process block 210), storing link state data locally (process block 212), and transmitting data utilizing the reconfigured PPP link (process block 214) before the illustrated process is terminated. Similarly, in other conventional peer data processing system PPP implementations, the formerly active processor may be reinitialized as the standby processor. The formerly active processor of such systems may then be utilized to detect switch-over conditions in the formerly standby (now active) processor, thereby allowing the active processor to transmit data utilizing the configured PPP link until a switch-over condition is detected or the link is terminated as previously described.
In such conventional “highly-available” peer data processing systems therefore, the standby processor reconfigures each of the peer's individual links including renegotiating all LCP and NCP-level configuration options. While this technique provides a faster recovery time than uniprocessor peer data systems which must re-initialize completely and then reconfigure all links, it still renders a peer data processing system temporarily unavailable while potentially thousands of its links are reconfigured and may trigger route update procedures for an entire communications network of which the peer is a part.